package pruebabdconector;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @author Milagros
 */
public class PruebaBDconector {
 private Connection con;
    private Statement st;
    private ResultSet rs;
    
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, SQLException {
        PruebaBDconector c = new PruebaBDconector();
        String sentencia="select * from poblaciones;";
        c.abrirConexion();//Solo se realiza una vez
            c.PrepararSentencia();//Solo se realiza una vez
            c.EjecutarConsulta(sentencia);
            c.ProcesarResultado();
            c.cerrarConexion();
        
        
    }
    
    
     public void abrirConexion() throws InstantiationException, IllegalAccessException {

        try {
            String userName = "root";
            String password = "root";

            String url = "jdbc:mysql://127.0.0.1/consumoelectrico";

            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = DriverManager.getConnection(url, userName, password);

            System.out.println("Conexion a la BD");

        } catch (ClassNotFoundException e) {
            // Error. No se ha encontrado el driver de la BD
            // e.printStackTrace();
            System.out.println("vaya chaco");
        } catch (SQLException e) {
            // Error. No se ha podido conectar a la BD
            //e.printStackTrace();
        }
    }
     
      /**
     * Ejecuta cada consulta, recibiendo el nombre de la consulta a devolver
     *
     * @param consulta
     * @throws SQLException
     */
    public void EjecutarConsulta(String consulta) throws SQLException {
        rs = st.executeQuery(consulta);
    }

    /**
     * Cierra la conexión con la BD
     */
    public void cerrarConexion() {
        try {
            con.close();
            System.out.println("Conexion cerrada");
        } catch (SQLException e) {
             System.out.println("Error al cerrar conexion");
        }
    }
    
    /**
     * Prepara el código java para lanzar sentencias
     *
     * @throws SQLException Lanza excepción en lugar de capturarla
     */
    public void PrepararSentencia() throws SQLException {
        st = con.createStatement();
    }

    private void ProcesarResultado() throws SQLException {
        rs.first();
        System.out.println(rs.getString(1));
    }
}
